package org.example.springblog.utils;

import lombok.extern.slf4j.Slf4j;
import org.springframework.util.DigestUtils;

import java.util.UUID;
@Slf4j
public class SecurityUtils {
    public static String  encry(String password) {
        //1.生成一个盐值和密码进行加密
        //2.最终将这个和盐值在进行拼接成字符串
        String salt= UUID.randomUUID().toString().replaceAll("-","");
        //数据库存储的是一个密码和盐值的密文，再加上一个盐值
        String security = DigestUtils.md5DigestAsHex((password+salt).getBytes());
        String finalPassword=salt+security;
        return finalPassword;
    }
    public static   Boolean verify(String password,String sqlPassword) {
        if (sqlPassword==null || sqlPassword.length()!=64){
            log.error("数据库中的密码格式不对");
            return false;
        }
        //这个密码是前端输入的
        String salt=sqlPassword.substring(0,32);
        //将盐值和密码进行加密
        //这里在加密的时候，还要注意盐值和密码的顺序
        String security=DigestUtils.md5DigestAsHex((password+salt).getBytes());
        //最后在进行比较是否正确
        String finalPassword=salt+security;
        return finalPassword.equals(sqlPassword);
    }
}
